'use strict';

angular.module('xianwan')
    .filter('organizationAvatar', function (Media) {
        return function (src) {
            if (src) {
                return Media.download(src);
            } else {
                return 'images/iconfont_org_default.png';
            }
        };
    })
    .filter('personAvatar', function (Media) {
        return function (src) {
            if (src && src.indexOf('images') > -1) {
                return src;
            }
            if (src) {
                return Media.download(src);
            } else {
                return 'images/default_person_avatar.png';
            }
        };
    })
    .filter('groupAvatar', function (Media) {
        return function (src) {
            if (src) {
                return Media.download(src);
            } else {
                return 'images/default_group_avatar.png';
            }
        };
    })
    .filter('appAvatar', function (Media) {
        return function (src) {
            if (src) {
                return Media.download(src);
            } else {
                return 'images/default_person_avatar.png';
            }
        };
    })
    .filter('loginAvatar', function (Media, Constant) {
        return function (user) {
            if (user.avatar) {
                return Constant.MEDIA_SERVER_URL.concat('medias/images/', user.avatar);
            } else {
                if (user.gender == 'MALE') {
                    return 'images/login/user_avatar_male_2x.png';
                }
                if (user.gender == 'FEMALE') {
                    return 'images/login/user_avatar_female_2x.png';
                }
                return 'images/login/user_avatar_default_2x.png';
            }
        };
    })
    .filter('linkAvatar', function (Media) {
        return function (src) {
            if (src) {
                return src;
            } else {
                return 'images/default_link.png';
            }
        };
    })
    .filter('messageAvatar', ['Media', 'IMConstant', 
        function (Media, IMConstant) {
            return function (src, msgToType) {
                if (src) {
                    if (/images\//.test(src)) {
                        return src;
                    }
                    return Media.download(src);
                } else {
                    switch (msgToType) {
                        case IMConstant.USER: {
                            return `images/default_person_avatar.png`;
                            break;
                        }; 
                        case IMConstant.DISCUSSION: {
                            return `images/default_group_avatar.png`;
                            break;
                        }; 
                        default: {
                            return `images/default_person_avatar.png`;
                            break;
                        }
                    }
                }
            }
        }
    ]);
